In recent years, the ever higher performance of computer systems and the constant development of multimedia processing techniques have led to environments that can process high-level three-dimensional (abbreviated "3D" in the following) computer graphics (abbreviated "CG" in the following) even on personal computers. Dedicated accelerator boards for processing of three-dimensional CG are under constant development.
There are several types of CG data formats. For example, games, that animate characters or objects such as artificial creatures, usually store the object data mainly in form of polygons. To render the object in a fast drawing procedure, a texture covers the created progressive polygon mesh.
When the data is stored in polygon format, a larger number of polygons should be assigned to the object for high-quality CG processing. However, when the polygons are displayed in real-time, there is a limit to the number of polygons that can be displayed. For example, taking a current personal computer for the platform to perform real-time processing, the number of polygons has to be limited to about 2000 polygons per frame. On the other hand, however, the user's expectancy towards a game is high, and there is a need for high-quality rendering of natural appearing of characters and objects such as artificial creatures. To respond to the user's expectancy, at least 1000-1500 polygons are necessary for each model. Therefore, it is difficult to render a plurality of objects simultaneously. Moreover, when the contents of the game expands and many objects appear on the screen, or when it comes to complex scenes approaching virtual reality, it becomes essential to render a plurality of objects per frame.
As an approach to solve this problem, a three-dimensional real-time image creation apparatus using progressive polygon data is known. The progressive polygon data that this apparatus uses is progressive in accordance with the level of the object display resolution and level of detail. In accordance with the display conditions, the progression level shifts dynamically, so that the polygon number increases or decreases, and the vertices of the progressive polygon mesh can be established. The progressive polygon data comprises basic polygon data of the coarsest level serving as a basis, and detailed polygon data expressed relatively to the basic polygon data.
This basic polygon data is the polygon data of the coarsest level (for example, 200 polygons) created from the original polygon data of the object model (for example, 10000 polygons) that the animator has designed, and corresponds to information in absolute coordinates. The detailed polygon data, on the other hand, is the polygon data on each progression level, which is created by interpolating the basic polygon vertices and corresponds to information in coordinates that are relative to the basic polygon data and the progression level.
The characteristics of the progressive polygons are explained in simple terms with reference to FIG. 20. A progressive polygon mesh 201 consists of progressive polygons of a certain progression levels. A progressive polygon mesh 202 consists of progressive polygons shifted to a coarser level. A progressive polygon mesh 203 consists of progressive polygons shifted to an even coarser level.
The progressive polygon mesh 201 has eight polygon vertices V.sub.0 -V.sub.7. A portion of the polygon vertices is eliminated to reduce the data amount (referred to as "reduction" in the following). For example, a possible rule for the reduction is to reduce one of two adjacent polygon vertices when the distance between the two points is within a certain reference distance L. Then, the reference distance of a certain level is L.sub.1 and the reference distance of the next, more detailed level is L.sub.2. As is shown in FIG. 20, the distance L.sub.V0V1 between the vertices V.sub.0 and V.sub.1 in the progressive polygon mesh 201 is L.sub.V0V1 &lt;L.sub.1 &lt;L.sub.2, and the distance L.sub.V2V5 between the vertices V.sub.2 and V.sub.5 is L.sub.1 &lt;L.sub.V2V5 &lt;L.sub.2.
The following is an explanation of the shift from the progressive polygon data of the progressive polygon mesh 201 to the next coarser progression level. The reference distance L of the current progression level is L.sub.1, so that the polygon vertices V.sub.0 and V.sub.1, whose distance is less than L.sub.1, become candidates for reduction. A new polygon vertex V.sub.0 is created by combining the vertices V.sub.0 and V.sub.1 of the progressive polygon mesh 202 to one vertex, and V.sub.1 is reduced, so that the number of polygon vertices is now seven. Similarly, to create the next level, V.sub.2 and V.sub.5 are chosen as candidates for reduction, because the reference distance L for this level is L.sub.2. As a result, V.sub.5 is reduced, and the number of polygon vertices becomes six. If this progression is applied to the entire object, and the polygon data is obtained for each progression level and stored as relative data for each level, then the polygon data of each progression level can be dynamically interpolated and reduced even when the progression level for the progressive polygon data is shifted.
For motion design in the course of a game etc., a three-dimensional real-time image creation apparatus using the above-described progressive polygon data can move and transform objects by renewing the basic polygon data. The apparatus decides the progression level according to the number of polygons assigned to the object based on the display conditions for each scene, and interpolates the basic polygon data from the detailed polygon data for this progression level to create the progressive polygon data.
For this conventional technique, polygon reduction processing for real-time processing of three-dimensional CG is an indispensable technique, but it is important, not to convey a sense of incongruity of the drawn objects arising from the user's polygon reduction. This means, deterioration of the appearance has to be avoided while paying special attention the portions of the object shape that are highly conspicuous to the user. However, conventional three-dimensional real-time imaging apparatuses as introduced above are subject to the following problems.
A first problem is that the distances between the polygon vertices of detailed, protruding features of an object are small, so that they are strongly influenced and even destroyed by a polygon reduction, because they are in a high progression level (detailed level). For example, when the detailed, protruding features are the teeth or the fingers of the object, then this detailed portion has high user conspicuity, and the appearance of the object deteriorates seriously if this portion is destroyed. In order not to destroy the detailed portion, the progression level of the detailed polygon data has to be kept high, so that a reduction of the amount of data for the entire object cannot be achieved.
A second problem is that the conventional polygon reduction processing is performed with respect to the polygons of the object surface, so that the data of the portions hidden inside the object are not reduced. This means that when polygon reduction processing is performed dynamically for an object that is displayed with a certain number of polygons, the polygon reduction processing is performed only for the polygon data forming the outer surface, and not for inner portions, such as tongue or teeth, so that only the portions of the outer surface visible to the user deteriorate.
A third problem is that conventional polygon reduction processing is performed uniformly with respect to all polygon data about the outer surface of the object. This means that the polygon reduction processing cannot be performed with an order of preference for the portions of the object. For example, when the object is an artificial creature, the eyes are the portions with the highest conspicuity for the user, and even when the creature is at a distant location on the screen, its eye-contact is perceived as important, so that it is preferable not to perform a polygon reduction on the portions including the eyes.
A fourth problem is that conventional polygon reduction processing cannot effectively reduce the amount of data for texture mapping. That is to say, the texture data includes two-dimensional texture coordinates (u, v) for the vertices of the polygon, but the three-dimensional coordinates of the vertices are moved because of the polygon reduction processing, and new polygon surfaces are formed, so that processing the texture coordinates of all vertices for all levels of polygon reduction becomes necessary, and the amount of data processing increases.
A fifth problem is that in conventional texture mapping, texture information for all polygon vertices has to be kept for all polygon surfaces. Conventionally, texture information consisted of two-dimensional texture information with respect to all vertices of each polygon surface. If the number of polygon vertices is n, 2n polygon surfaces are formed per average. If the polygon surfaces are triangles, there are three vertices per polygon surface, so that 3.times.2n sets of texture information, that is 6n sets of texture information are necessary. To reduce this amount of texture information is also an important improvement.
It is an object of the present invention to solve these problems in the polygon reduction processing of the above-described conventional three-dimensional polygon display apparatus, and provide a three-dimensional polygon display apparatus that can adjust the extent to which polygon reduction processing is performed for each portion of the object, perform suitable polygon reduction processing also for the portions hidden inside the object, and effectively reduce the amount of data for texture mapping.